var host = "http://localhost";
var port = "80";
window.shopUrl = {
    "baseUrl": host + ":" + port + "/" // http://localhost:80
}

// 提交表单
function submit(form,url){

    // 1.把form转成js对象
    var param = formToObject(form);

    // 2.发送请求
    sendRequest(param,url);

}

/**
 *  发送一个请求携带token
 * @param param 参数的属性
 * @param url 请求的地址
 * @param callback 回调函数
 */
function sendRequestCallbackToken(url,param,callback){

    // 2.异步提交数据
    $.ajax({
        url:shopUrl.baseUrl+url // 请求的地址
        ,contentType:"application/json" // 前端传递的数据类型是JSON
        ,beforeSend:function(req){ // 在发送请求之前会被调用
            // 1.获取token
            var token = localStorage.getItem("2101-login-token")

            // 2.判断，避免传递"null"
            if(token){ // 在js只要是非空就是true
                // 把token放在请求头的Authorization比较规范
                req.setRequestHeader("Authorization",token);
            }
        }
        ,type:"POST" // 请求方式
        ,data:JSON.stringify(param) // 请求时携带的数据
        ,dataType:"JSON" // 期望服务端返回的数据
        ,success:function(data){ // 请求响应成功后回调函数
            callback(data);
        },
        error:function(XMLHttpRequest,textStatus,errorThrown){ // 服务端错误后的调用的函数
        }
    });

}


function submitCallback(form,url,callback){

    // 1.把form转成js对象
    var param = formToObject(form);

    // 2.发送请求
    sendRequestCallback(url,param,callback);

}

function sendRequestCallback(url,param,callback){
    // 2.异步提交数据
    $.ajax({
        url:shopUrl.baseUrl+url // 请求的地址
        ,contentType:"application/json" // 前端传递的数据类型是JSON
        ,type:"POST" // 请求方式
        ,data:JSON.stringify(param) // 请求时携带的数据
        ,dataType:"JSON" // 期望服务端返回的数据
        ,success:function(data){ // 请求响应成功后回调函数
            callback(data);
        },
        error:function(XMLHttpRequest,textStatus,errorThrown){ // 服务端错误后的调用的函数
        }
    });
}


// 发送请求
function sendRequest(param,url){
    // 2.异步提交数据
    $.ajax({
        url:shopUrl.baseUrl+url // 请求的地址
        ,contentType:"application/json" // 前端传递的数据类型是JSON
        ,type:"POST" // 请求方式
        ,data:JSON.stringify(param) // 请求时携带的数据
        ,dataType:"JSON" // 期望服务端返回的数据
        ,success:function(data){ // 请求响应成功后回调函数
            // 响应用户
            responceClient(data);

        },
        error:function(XMLHttpRequest,textStatus,errorThrown){ // 服务端错误后的调用的函数
        }
    });
}

// 响应用户
function responceClient(data){
    if(data.status == "success"){
        // 提示操作成功
        layer.msg('操作成功', {icon: 1,time:1000},function(){
            // 获取层的索引
            var index = parent.layer.getFrameIndex(window.name);
            // 把这个层关闭
            parent.layer.close(index);
        });
    }else{
        layer.msg(data.msg, {icon: 2,time:1000});
    }
}

// 把form对象转成js对象
function formToObject(form){

    // 1.获取表单的数据
    var fromArray = form.serializeArray(); // 获取的表中数据的数组

    // 2、创建一个对象，用来封装表单的数据
    var param = new Object();
    // param.name = "admin";

    for(var i =0;i<fromArray.length;i++){
        var name = fromArray[i].name; // 获取表单name属性
        var value = fromArray[i].value; // 获取表单值

        // 3、把name和value封装到param对象
        param[name]=value; // 给param对象添加一个name属性，值为value
    }
    return param;
}